package Socket;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;


public class Cliente {



    public Socket socket;
    Integer puerto=5000;
    String serverHost = "localhost";

    int  autoId=0;
    ObjectInputStream entrada;
    ObjectOutputStream salida;

    RunCliente runC;
    
TeclaCliente tecla;
    int recibe;
private Cliente() {

    tecla= new TeclaCliente();

        try {
                socket = new Socket(serverHost,puerto);

                entrada = new ObjectInputStream(socket.getInputStream());

                //recibo el id de mi autito
                tecla.idcliente  = (Integer)entrada.readObject();
               
                recibe = (Integer)entrada.readObject();

                tecla.idcliente=recibe;
                System.out.println ("Me dieron el autito " + tecla.idcliente);


                //y obtengo el manejador de salida para mandar las teclas
            	salida = new ObjectOutputStream(socket.getOutputStream());


                runC=new RunCliente(this);




        } catch (Exception ex) {System.out.println("Error: "+ex);}
}

public void cerrar(){
    //Cerrar los canales de entrada y salida que se hayan abierto
    try {
        salida.close();
        entrada.close();
        } catch (IOException ex) {System.out.println("Error al cerrar"); }
}



synchronized  public void setTecla(int t){

tecla.codtecla =t;

System.out.println("Tecla recibida: "+tecla.codtecla );

enviarTecla();
}


synchronized public void enviarTecla(){


        try {
            salida.writeObject(tecla);
            salida.flush();
        } catch (IOException ex) {
            Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex);
        }

	}

public void recibirPantalla(){

      //Para recibir:
                /* Se lee un Datosocket que nos envía el servidor y se muestra
                 * en pantalla */
               // UnObjeto mensaje = (UnObjeto)entrada.readObject();
             //   System.out.println ("Recibido " + mensaje.toString());

               // mensaje.print();

}

public static void main(String[] args) {
        new Cliente();
}

}
